#include<stdio.h>
#include<stdlib.h>
#include<memory.h>

int m,n;
int *LineCurr,*LineNext;


void f(int level,int offset)
{
    printf("level=%d offset=%d\n",level,offset);

    int i;
    for(i=0;i<n;i++)
    {
        printf("%d ",LineNext[i]);
    }
    printf("\n");
    for(i=0;i<n;i++)
    {
        printf("%d ",LineCurr[i]);
    }
    printf("\n");


    if(offset==n)
    {
        if(level==m-2)
        {
            int i;
            for(i=0;i<n;i++)
                if(LineNext[i]>0)
                    break;
            if(i==n)
            {
                printf("success!");
                exit(0);
            }
            else
                return;
        }
        else
        {
            int i;
            for(i=0;i<n;i++)
                LineCurr[i]=LineNext[i];
            memset(LineCurr,0,n*sizeof(int));

            f(level+1,0);

            for(i=0;i<n;i++)
                LineNext[i]=LineCurr[i];
            for(i=0;i<n;i++)
                LineNext[i]=1;
        }
    }
    else
    {
        if(LineCurr[offset]==1)
        {
            f(level,offset+1);
        }
        else
        {
            LineNext[offset]=1;
            f(level,offset+1);
            LineNext[offset]=0;

            if(offset<n-1 && LineCurr[offset+1]==0)
            {
                f(level,offset+2);
            }
        }
    }
}

int main()
{
    while(scanf("%d %d",&m,&n) && m>0 && n>0)
    {
        m=m+1;

        LineCurr=malloc(n*sizeof(int));
        memset(LineCurr,0,n*sizeof(int));
        LineNext=malloc(n*sizeof(int));
        memset(LineNext,0,n*sizeof(int));

        f(0,0);
    }
}

